package com.dragon.utilslibrary.tools;

import android.util.Base64;
import android.util.Log;

import java.io.UnsupportedEncodingException;

/**
 * BASE64 decode & encocde
 */
public class Base64Utils {

    private static final String TAG = "Base64Utils";

    private Base64Utils() {

    }

    /**
     * 对s进行base64编码
     *
     * @param s ：需要进行编码的字符串
     * @return 返回编码后数据，编码格式为“utf-8”，异常或者 s=null则返回空！
     */
    public static String getBASE64(String s) {
        if (s == null) return null;
        try {
            return new String(Base64.encode(s.getBytes(), Base64.NO_WRAP), "utf-8");
        } catch (UnsupportedEncodingException e) {
            Log.e(TAG, e.getMessage());
        }
        return null;
    }

    /**
     * 将 BASE64 编码的字符串 s 进行解码
     *
     * @param s ：需要进行解码的字符串
     * @return 返回解码后的数据，编码格式为“utf-8”,异常或s=null则返回空！
     */
    public static String getFromBASE64(String s) {
        if (s == null) return null;
        byte[] b = Base64.decode(s, Base64.DEFAULT);
        try {
            return new String(b, "utf-8");
        } catch (UnsupportedEncodingException e) {
            Log.e(TAG, e.getMessage());
        }
        return null;
    }

    public static byte[] decode(String base64) throws Exception {
        return Base64.decode(base64.getBytes(), Base64.DEFAULT);
    }

    public static String encode(byte[] bytes) throws Exception {
        return new String(Base64.encode(bytes, Base64.DEFAULT));
    }

}
